package com.sgb.kjwl.di.home;

import com.sgb.kjwl.repository.HomeRepertory;
import com.sgb.kjwl.repository.impl.HomeRepertoryImpl;
import com.sgb.kjwl.view.ui.activity.CentralizedActivity;
import com.sgb.jicai.view.activity.FactoryCentralizedActivity;
import com.sgb.kjwl.view.ui.activity.MainActivity;
import com.sgb.kjwl.view.ui.activity.PreferredChoiceActivity;
import com.sgb.kjwl.view.ui.activity.ZulinSearchResultActivity;
import com.sgb.kjwl.view.ui.activity.demand.DemandDetailsActivity;
import com.sgb.kjwl.view.ui.activity.demand.DemandHallActivity;
import com.sgb.kjwl.view.ui.activity.demand.DemandManageActivity;
import com.sgb.kjwl.view.ui.activity.demand.DemandPublishActivity;
import com.sgb.jicai.view.activity.JiCaiSearchTwoActivity;
import com.sgb.kjwl.view.ui.activity.home.ChoiceCityActivity;
import com.sgb.kjwl.view.ui.activity.home.ChooseAreaActivity;
import com.sgb.kjwl.view.ui.activity.home.SearchActivity;
import com.sgb.kjwl.view.ui.activity.home.SearchActivity3;
import com.sgb.kjwl.view.ui.activity.home.SearchActivity4;
import com.sgb.kjwl.view.ui.activity.home.SearchActivity5;
import com.sgb.kjwl.view.ui.activity.home.SearchShopFirstActivity;
import com.sgb.kjwl.view.ui.activity.home.ZuLinSearchActivity;
import com.sgb.kjwl.view.ui.activity.logistics.LogisticsSearchActivity3;
import com.sgb.kjwl.view.ui.activity.material.GoodsSearchResultActivity;
import com.sgb.kjwl.view.ui.activity.material.GoodsSearchResultModle;
import com.sgb.kjwl.view.ui.activity.supplier3.SupplierActivity3;
import com.sgb.kjwl.view.ui.activity.supplier3.SupplierActivity4;
import com.sgb.kjwl.view.ui.activity.lease.ZulinMechanicalActivity;
import com.sgb.kjwl.viewmodel.demand.DemandHallModel;
import com.sgb.kjwl.viewmodel.demand.DemandManageModel3;
import com.sgb.kjwl.viewmodel.demand.DemandModel3;
import com.sgb.kjwl.viewmodel.demand.DemandPublishModel3;
import com.sgb.kjwl.viewmodel.freightTransport.LogisticsSearchModel3;
import com.sgb.kjwl.viewmodel.home.CentralizedModel;
import com.sgb.kjwl.viewmodel.home.ChoiceCityModel;
import com.sgb.kjwl.viewmodel.home.ChooseAreaModel;
import com.sgb.kjwl.viewmodel.home.MainModel;
import com.sgb.kjwl.viewmodel.home.PreferredChoiceModel;
import com.sgb.kjwl.viewmodel.home.SearchModel;
import com.sgb.kjwl.viewmodel.home.SearchModel3;
import com.sgb.kjwl.viewmodel.home.SearchModel4;
import com.sgb.kjwl.viewmodel.home.SearchModel5;
import com.sgb.kjwl.viewmodel.home.SearchShopFirstModel;
import com.sgb.kjwl.viewmodel.home.ZuLinSearchModel;
import com.sgb.kjwl.viewmodel.home.ZulinMechanicalModel;
import com.sgb.kjwl.viewmodel.home.ZulinSearchResultModel;
import com.sgb.kjwl.viewmodel.supplier3.SupplierModel3;
import com.sgb.kjwl.viewmodel.supplier3.SupplierModel4;
import com.swgk.core.base.di.Activity;
import com.swgk.core.base.api.BaseApiSource;
import com.swgk.core.base.model.preference.BasePreferenceSource;

import dagger.Module;
import dagger.Provides;

@Module
public class HomeModule {
    private ChooseAreaActivity chooseAreaActivity;
    private ChoiceCityActivity choiceCityActivity;
    private SearchActivity searchActivity;
    private MainActivity mainActivity;
    private SupplierActivity3 supplierActivity3;
    private SupplierActivity4 supplierActivity4;
    private DemandDetailsActivity demandDetailsActivity;
    private DemandHallActivity demandHallActivity;
    private DemandManageActivity demandManageActivity;
    private DemandPublishActivity demandPublishActivity;
    private SearchActivity3 searchActivity3;
    private LogisticsSearchActivity3 logisticsSearchActivity3;
    private CentralizedActivity centralizedActivity;
    private FactoryCentralizedActivity factoryCentralizedActivity;
    private SearchActivity4 searchActivity4;
    private ZuLinSearchActivity zuLinSearchActivity;
    private ZulinSearchResultActivity zulinSearchResultActivity;
//    private NeedDetailsActivity mNeedDetailsActivity;
    private PreferredChoiceActivity preferredChoiceActivity;
    private JiCaiSearchTwoActivity jiCaiSearchTwoActivity;

    private SearchActivity5 searchActivity5;
    private ZulinMechanicalActivity zulinMechanicalActivity;
    private SearchShopFirstActivity searchShopFirstActivity;
    private GoodsSearchResultActivity goodsSearchResultActivity;

    public HomeModule(SearchActivity4 searchActivity4) {
        this.searchActivity4 = searchActivity4;
    }
    public HomeModule(SearchShopFirstActivity searchShopFirstActivity) {
        this.searchShopFirstActivity = searchShopFirstActivity;
    }
    public HomeModule(ZulinSearchResultActivity zulinSearchResultActivity) {
        this.zulinSearchResultActivity = zulinSearchResultActivity;
    }

    public HomeModule(ZuLinSearchActivity zuLinSearchActivity) {
        this.zuLinSearchActivity = zuLinSearchActivity;
    }

    public HomeModule(FactoryCentralizedActivity factoryCentralizedActivity) {
        this.factoryCentralizedActivity = factoryCentralizedActivity;
    }

    public HomeModule(CentralizedActivity centralizedActivity) {
        this.centralizedActivity = centralizedActivity;
    }

    public HomeModule(DemandDetailsActivity demandDetailsActivity) {
        this.demandDetailsActivity = demandDetailsActivity;
    }

    public HomeModule(DemandHallActivity demandHallActivity) {
        this.demandHallActivity = demandHallActivity;
    }

    public HomeModule(ChooseAreaActivity chooseAreaActivity) {
        this.chooseAreaActivity = chooseAreaActivity;
    }

    public HomeModule(ChoiceCityActivity choiceCityActivity) {
        this.choiceCityActivity = choiceCityActivity;
    }

    public HomeModule(SearchActivity searchActivity) {
        this.searchActivity = searchActivity;
    }

    public HomeModule(MainActivity mainActivity) {
        this.mainActivity = mainActivity;
    }

    public HomeModule(SupplierActivity3 supplierActivity3) {
        this.supplierActivity3 = supplierActivity3;
    }

    public HomeModule(SupplierActivity4 supplierActivity4) {
        this.supplierActivity4 = supplierActivity4;
    }

    public HomeModule(DemandManageActivity demandManageActivity) {
        this.demandManageActivity = demandManageActivity;
    }

    public HomeModule(DemandPublishActivity demandPublishActivity) {
        this.demandPublishActivity = demandPublishActivity;
    }

    public HomeModule(SearchActivity3 searchActivity3) {
        this.searchActivity3 = searchActivity3;
    }

    public HomeModule(LogisticsSearchActivity3 logisticsSearchActivity3) {
        this.logisticsSearchActivity3 = logisticsSearchActivity3;
    }

    public HomeModule(PreferredChoiceActivity preferredChoiceActivity) {
        this.preferredChoiceActivity = preferredChoiceActivity;
    }

//
//    public HomeModule(NeedDetailsActivity needDetailsActivity) {
//        mNeedDetailsActivity = needDetailsActivity;
//    }

    public HomeModule(JiCaiSearchTwoActivity jiCaiSearchTwoActivity) {
        this.jiCaiSearchTwoActivity = jiCaiSearchTwoActivity;
    }

    public HomeModule(SearchActivity5 searchActivity5) {
        this.searchActivity5 = searchActivity5;
    }

    public HomeModule(ZulinMechanicalActivity zulinMechanicalActivity) {
        this.zulinMechanicalActivity = zulinMechanicalActivity;
    }

    public HomeModule(GoodsSearchResultActivity activity) {
        this.goodsSearchResultActivity = activity;
    }

    @Provides
    @Activity
    HomeRepertory provideHomeRepertory(BaseApiSource apiSource, BasePreferenceSource preferenceSource) {
        return new HomeRepertoryImpl(apiSource, preferenceSource);
    }

    @Provides
    @Activity
    ChooseAreaModel provideChooseAreaModel(HomeRepertory repertory) {
        return new ChooseAreaModel(chooseAreaActivity, repertory);
    }

    @Provides
    @Activity
    ChoiceCityModel provideChoiceCityModel(HomeRepertory repertory) {
        return new ChoiceCityModel(choiceCityActivity, repertory);
    }

    @Provides
    @Activity
    SearchModel provideSearchModel(HomeRepertory repertory) {
        return new SearchModel(searchActivity, repertory);
    }

    @Provides
    @Activity
    MainModel provideMainModel(HomeRepertory repertory) {
        return new MainModel(mainActivity, repertory);
    }

    @Provides
    @Activity
    SupplierModel3 provideSupplierModel3(HomeRepertory repertory) {
        return new SupplierModel3(supplierActivity3, repertory);
    }

    @Provides
    @Activity
    SupplierModel4 provideSupplierModel4(HomeRepertory repertory) {
        return new SupplierModel4(supplierActivity4, repertory);
    }

    @Provides
    @Activity
    DemandModel3 provideDemandModel3(HomeRepertory repertory) {
        return new DemandModel3(demandDetailsActivity, repertory);
    }

    @Provides
    @Activity
    DemandHallModel provideDemandHallModel(HomeRepertory repertory) {
        return new DemandHallModel(demandHallActivity, repertory);
    }

    @Provides
    @Activity
    DemandManageModel3 provideDemandManageModel3(HomeRepertory repertory) {
        return new DemandManageModel3(demandManageActivity, repertory);
    }

    @Provides
    @Activity
    DemandPublishModel3 provideDemandPublishModel3(HomeRepertory repertory) {
        return new DemandPublishModel3(demandPublishActivity, repertory);
    }

    @Provides
    @Activity
    SearchModel3 provideSearchModel3(HomeRepertory repertory) {
        return new SearchModel3(searchActivity3, repertory);
    }

    @Provides
    @Activity
    LogisticsSearchModel3 logisticsSearchModel3(HomeRepertory repertory) {
        return new LogisticsSearchModel3(logisticsSearchActivity3, repertory);
    }

    @Provides
    @Activity
    CentralizedModel centralizedModel(HomeRepertory repertory) {
        return new CentralizedModel(centralizedActivity, repertory);
    }

    @Provides
    @Activity
    SearchModel4 searchModel4(HomeRepertory repertory) {
        return new SearchModel4(searchActivity4, repertory);
    }

    @Provides
    @Activity
    ZuLinSearchModel zulinSearchModel(HomeRepertory repertory) {
        return new ZuLinSearchModel(zuLinSearchActivity, repertory);
    }

    @Provides
    @Activity
    ZulinSearchResultModel zulinSearchResultModel(HomeRepertory repertory) {
        return new ZulinSearchResultModel(zulinSearchResultActivity, repertory);
    }

//
//    @Provides
//    @Activity
//    NeedDetailsModel needDetailsModel(HomeRepertory repertory) {
//        return new NeedDetailsModel(mNeedDetailsActivity, repertory);
//    }


    @Provides
    @Activity
    PreferredChoiceModel preferredChoiceModel(HomeRepertory repertory) {
        return new PreferredChoiceModel(preferredChoiceActivity, repertory);
    }


    @Provides
    @Activity
    SearchModel5 searchModel5(HomeRepertory repertory) {
        return new SearchModel5(searchActivity5, repertory);
    }

    @Provides
    @Activity
    ZulinMechanicalModel zulinMechanicalModel(HomeRepertory repertory) {
        return new ZulinMechanicalModel(zulinMechanicalActivity, repertory);
    }

    @Provides
    @Activity
    SearchShopFirstModel searchShopFirstModel(HomeRepertory repertory) {
        return new SearchShopFirstModel(searchShopFirstActivity, repertory);
    }


    @Provides
    @Activity
    GoodsSearchResultModle goodsSearchResultModle(HomeRepertory repertory) {
        return new GoodsSearchResultModle(goodsSearchResultActivity, repertory);
    }
}
